package com.bdqn.service;

/**
 * @author ya
 * @date 2018/11/17 14:17
 */
public interface CacheService {


    /**
     * 设置缓存
     * @param cacheName 缓存名称
     * @param key 缓存主键
     * @param value 缓存值
     */
    void put(String cacheName, String key, String value);

    /**
     * 设置缓存
     * @param cacheName 缓存名称
     * @param key 缓存主键
     * @param value 缓存值
     */
    void put(String cacheName, String key, Integer value);

    /**
     * 设置缓存
     * @param cacheName 缓存名称
     * @param key 缓存主键
     * @param value 缓存值
     * @param timeout 超时时间 单位秒
     */
    void put(String cacheName, String key, String value, int timeout);

    /**
     * 获取缓存
     * @param cacheName 缓存名称
     * @param key 缓存主键
     * @return
     */
    String getString(String cacheName, String key);

    /**
     * 获取缓存
     * @param cacheName 缓存名称
     * @param key 缓存主键
     * @return
     */
    Integer getInteger(String cacheName, String key);

    /**
     * 删除缓存
     * @param cacheName 缓存名称
     * @param key 缓存主键
     * @return
     */
    boolean delete(String cacheName, String key);

    /**
     * 删除缓存
     * @param cacheName 缓存名称
     * @return
     */
    boolean delete(String cacheName);

    /**
     * 命令用于返回哈希表中指定字段的值
     * @param cacheName  缓存名称
     * @param key 缓存主键
     * @return
     */
    String hget(String cacheName, String key);

    /**
     * 命令用于返回哈希表中指定字段的值
     * @param cacheName  缓存名称
     * @param key 缓存主键
     * @return
     */
    void hset(String cacheName, String key, String value);

    /**
     * 设置过期时间
     * @param key
     * @param time
     */
    void hsetexpire(String key, Integer time);

}
